package com.example.hellodemo.widget;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Path;
import android.util.AttributeSet;
import android.view.View;

import androidx.annotation.Nullable;

public class MyView extends View {
    private  Paint paint;
    // 在代码中调用所使用的方法
    public MyView(Context context) {
        super(context);
        initPaint();
    }
    // 在xml使用所调用的方法
    public MyView(Context context, @Nullable AttributeSet attrs) {
        super(context, attrs);
        initPaint();
    }

    // 测量View控件
    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        super.onMeasure(widthMeasureSpec, heightMeasureSpec);
    }

    // 绘制控件
    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);

        // 画布
        //绘制一个圆
        canvas.drawCircle(60,60,60,paint);
        // 绘制文字
        canvas.drawText("hellotext",100,100,paint);

        // 绘制直线
        canvas.drawLine(100,100,150,150,paint);

        // 绘制路径
        Path path = new Path();
        // 移动到一个点
        path.moveTo(60,60);
        // 绘制直线
        path.lineTo(60,60);
        path.lineTo(120,0);
        path.lineTo(180,120);
        path.moveTo(120,0);
        path.moveTo(180,120);
        // 图形闭合
        path.close();
        canvas.drawPath(path,paint);
    }

    public void initPaint(){
        // 画笔
        paint = new Paint();
        // 设置抗锯齿
        paint.setAntiAlias(true);
        // 设置画笔的宽度
        paint.setStrokeWidth(5);
        // 设置画笔的颜色
        paint.setColor(Color.BLUE);
        // 设置画笔的样式
        paint.setStyle(Paint.Style.STROKE);
        // 设置文本字体大小
        paint.setTextSize(20);
    }
}
